# SPDX-License-Identifier: GPL-2.0-only
#
# External soc control infrastructure and drivers
#
menuconfig ESOC
	bool "External SOCs Control"
	help
	  External SOCs can be powered on and monitored by user
	  space or kernel drivers. Additionally they can be controlled
	  to respond to control commands. This framework provides an
	  interface to track events related to the external slave socs.

if ESOC

config ESOC_DEV
	bool "ESOC userspace interface"
	help
	  Say yes here to enable a userspace representation of the control
	  link. Userspace can register a request engine or a command engine
	  for the external soc. It can receive event notifications from the
	  control link.

config ESOC_CLIENT
	bool "ESOC client interface"
	depends on OF
	help
	  Say yes here to enable client interface for external socs.
	  Clients can specify the external soc that they are interested in
	  by using device tree phandles. Based on this, clients can register
	  for notifications from a specific soc.

config ESOC_DEBUG
	bool "ESOC debug support"
	help
	  Say yes here to enable debugging support in the ESOC framework
	  and individual esoc drivers. The config basically adds extra
	  logging information such that, in the event of a bug, this
	  logging information could be helpful to trace it.

config ESOC_MDM_4x
	bool "Add support for external modems"
	help
	  In some QTI boards, an external modem such as mdm9x55 or sdx50m
	  is connected to a primary msm. The primary soc can control/monitor
	  the modem via gpios. The data communication with such modems can
	  occur over PCIE or HSIC.

config ESOC_MDM_DRV
	tristate "Command engine for 4x series external modems"
	help
	  Provides a command engine to control the behavior of an external
	  modems (such as mdm9x55 or sdx50m). That is, it extends the SSR
	  framework to power-off, power-on or handle crash scenarios. It
	  also listens for events on the external modem.

config ESOC_MDM_DBG_ENG
	tristate "debug engine for 4x series external modems"
	depends on ESOC_MDM_DRV
	help
	  Mainly used as a debug interface to probe the modem against various
	  scenarios. It basically provides a user interface to mask out certain
	  commands sent by command engine to the external modem. It also allows
	  masking of certain notifications being sent to the external modem.

config MDM_DBG_REQ_ENG
	tristate "manual request engine for 4x series external modems"
	depends on ESOC_MDM_DBG_ENG
	help
	  Provides a user interface to handle incoming requests from
	  the external modem. Allows for debugging of IPC mechanism
	  between the external modem and the primary soc.

endif
